package com.youlai.boot.form.model.entity;

import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
import com.youlai.boot.common.base.BaseEntity;
import lombok.EqualsAndHashCode;

import java.io.Serial;

/**
 * 动态单定义实体对象
 *
 * @author rabit
 * @since 2025-10-27 16:47
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("form_definition")
public class FormDefinition extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 表单编码
     */
    private String formCode;
    /**
     * 表单名称
     */
    private String formName;
    /**
     * 表单类型：custom(普通)/workflow(工作流)/survey(问卷)
     */
    private String formType;
    /**
     * 表单结构JSON，描述字段组件结构
     */
    private String formSchema;
    /**
     * 描述信息
     */
    private String description;
    /**
     * 版本号
     */
    private Integer version;
    /**
     * 最大版本号
     */
    private Integer maxVersion;
    /**
     * 状态：0启用 1停用 2历史版本
     */
    private Integer status;

    /**
     * 版本变更记录历史
     */
    private String versionHistory;

    /**
     * 创建人ID
     */
    private Long createBy;
    /**
     * 修改人ID
     */
    private Long updateBy;
    /**
     * 逻辑删除标识(1-已删除 0-未删除)
     */
    private Integer isDeleted;
    /**
     * 父表单ID（历史版本源）
     */
    private Long parentFormId;
    /**
     * 是否激活（0是，1否）
     */
    private Integer active;

    /**
     * 排序字段
     */
    private Integer sort;
}
